package com.jic.interaction.JDVOP.service;

import com.jic.interaction.JDVOP.common.utils.RestResult;
import com.jic.interaction.JDVOP.model.entity.*;
import com.jic.interaction.JDVOP.model.vo.response.*;

import java.lang.reflect.InvocationTargetException;

/**
 * @Classname SiteApiService
 * @Description TODO
 * @Date 2020/11/16 19:22
 * @Created by 22720
 */
public interface SiteApiService {

    /*
        查询京东一级地址列表。
     */
    RestResult selectOne(SiteApiOne one)throws IllegalAccessException, NoSuchMethodException, InvocationTargetException;

    /*
       根据京东一级地址ID，查询京东二级地址列表。
    */
    RestResult selectTwo(SiteApiTwo two)throws IllegalAccessException, NoSuchMethodException, InvocationTargetException;

    /*
        根据京东二级地址ID，查询京东三级地址列表。
     */
    RestResult selectThree(SiteApiThree three)throws IllegalAccessException, NoSuchMethodException, InvocationTargetException;

    /*
        根据京东三级地址ID，查询京东四级地址列表。
     */
    RestResult selectFour(SiteApiFour four)throws IllegalAccessException, NoSuchMethodException, InvocationTargetException;

    /*
       验证已编码为京东一至四级地址ID的有效性。
    */
    RestResult selectId(VerifiCationId cationId)throws IllegalAccessException, NoSuchMethodException, InvocationTargetException;

    /*
        根据地址详情转换为京东地址编码。
        该接口不能保证所有地址都匹配到京东地址，
        也不能保证所有匹配到的京东地址都正确。
        因而，优先推荐使用逐级选择的方法。
     */
    RestResult selectParticulars(ParticularsTransition particul)throws IllegalAccessException, NoSuchMethodException, InvocationTargetException;

}
